from playwright.sync_api import Playwright, sync_playwright, expect
def run(playwright: Playwright) -> None :
browser = playwright.chromium.launch(headless= False , slow_mo= 50 )
### RECORD VIDEO
context = browser.new_context(record_video_dir= "videos/" )
page = context.new_page()
page.goto("https://nces.ed.gov/ipeds/use-the-data" )
page.get_by_role("link" , name= "Compare Institutions" , exact= True ).click()
### ADD/CHANGE PEER SETS
page.locator("#tbInstitutionSearch" ).fill("217156,190150,190415,182670,166027,166683,186131,243744,144050,215062,130794" )
page.get_by_role("button" , name= "Select" ).click()
page.get_by_text("Check All" , exact= True ).click()
page.get_by_role("button" , name= "Continue" ).click()
page.get_by_role("link" , name= "Continue" ).click()
page.get_by_text("Admissions and Test Scores" ).click()
page.get_by_text("Admissions and test scores" , exact= True ).click()
page.get_by_text("Number of applications, admissions, and enrollees" ).click()
### ADD/CHANGE YEARS
page.get_by_label("2021-22" ).check()
page.get_by_label("Applicants total" ).check()
page.get_by_label("Admissions total" ).check()
page.get_by_label("Enrolled total" ).check()
### SAVE SCREENSHOTS
page.screenshot(path= "admissions-screenshot.png" )
page.get_by_role("img" , name= "Continue" ).click()
page.get_by_role("img" , name= "Continue" ).click()
with page.expect_download() as download_info:
page.get_by_role("button" , name= "Continue" ).click()
download = download_info.value
### EXPORT DATA AS CSV
download.save_as("ivyplus-admissions.csv" )
# ---------------------
context.close()
browser.close()
with sync_playwright() as playwright:
run(playwright)